package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.SysBrowsingHistory;
import com.ruoyi.system.domain.SysCollection;
import com.ruoyi.system.domain.SysUsers;
import com.ruoyi.system.domain.SysPosts;

/**
 * 用户Mapper接口
 *
 * @author ruoyi
 * @date 2024-03-01
 */
public interface SysUsersMapper {
    /**
     * 查询用户
     *
     * @param userId 用户主键
     * @return 用户
     */
    public SysUsers selectSysUsersByUserId(Long userId);

    /**
     * 查询用户列表
     *
     * @param sysUsers 用户
     * @return 用户集合
     */
    public List<SysUsers> selectSysUsersList(SysUsers sysUsers);

    /**
     * 新增用户
     *
     * @param sysUsers 用户
     * @return 结果
     */
    public int insertSysUsers(SysUsers sysUsers);

    /**
     * 修改用户
     *
     * @param sysUsers 用户
     * @return 结果
     */
    public int updateSysUsers(SysUsers sysUsers);

    /**
     * 删除用户
     *
     * @param userId 用户主键
     * @return 结果
     */
    public int deleteSysUsersByUserId(Long userId);

    /**
     * 批量删除用户
     *
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysUsersByUserIds(Long[] userIds);

    /**
     * 批量删除发布
     *
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysPostsByUserIds(Long[] userIds);

    /**
     * 批量新增发布
     *
     * @param sysPostsList 发布列表
     * @return 结果
     */
    public int batchSysPosts(List<SysPosts> sysPostsList);


    /**
     * 通过用户主键删除发布信息
     *
     * @param userId 用户ID
     * @return 结果
     */
    public int deleteSysPostsByUserId(Long userId);

    void batchSysCollection(List<SysCollection> sysCollectionList);

    /**
     * 批量删除浏览历史
     *
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysBrowsingHistoryByUserIds(Long[] userIds);

    /**
     * 批量删除新增浏览历史
     *
     * @param sysBrowsingHistoryList
     */
    int batchSysBrowsingHistory(List<SysBrowsingHistory> sysBrowsingHistoryList);

    /**
     * 通过用户主键删除浏览历史信息
     *
     * @param userId 用户ID
     * @return 结果
     */
    public int deleteSysBrowsingHistoryByUserId(Long userId);
}
